package cn.iocoder.yudao.module.vote.controller.admin.voteinfo.vo;

import lombok.*;
import java.util.*;
import io.swagger.annotations.*;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@ApiModel("管理后台 - 投票规则分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class VoteInfoPageReqVO extends PageParam {

    @ApiModelProperty(value = "投票名称")
    private String voteName;

    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @ApiModelProperty(value = "开始投票开始时间")
    private Date beginBeginTime;

    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @ApiModelProperty(value = "结束投票开始时间")
    private Date endBeginTime;

    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @ApiModelProperty(value = "开始投票结束时间")
    private Date beginEndTime;

    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @ApiModelProperty(value = "结束投票结束时间")
    private Date endEndTime;

    @ApiModelProperty(value = "投票人数")
    private Integer voteCount;

    @ApiModelProperty(value = "限制最高投票人数")
    private Integer limitCount;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "导入次数")
    private String importCount;

    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @ApiModelProperty(value = "开始创建时间")
    private Date beginCreateTime;

    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @ApiModelProperty(value = "结束创建时间")
    private Date endCreateTime;

    @ApiModelProperty(value = "投票类型")
    private Integer voteType;

    @ApiModelProperty(value = "引用其他投票规则的id")
    private Integer quoteVoteId;
    @ApiModelProperty(value = "是否引用其他投票规则用户信息")
    private Boolean isQuote;
    /**
     * 是否发布
     */
    private Boolean isPush;


    /**
     * 不包含指定类型
     */
    private List<Long> noInVoteType;
}
